package cn.com.headfree.commworkflow.dao;



import cn.com.headfree.commworkflow.dto.ApproveWorkFlowDto;
import cn.com.headfree.commworkflow.model.TWorkFlowApprove;
import cn.com.headfree.commworkflow.model.TWorkFlowNodeApprove;
import com.gta.edu.sdk.common.dto.Page;

import java.util.List;

/**
 * @description 工作流审批数据访问接口
 * @author fengya
 * @date 2015-8-6 上午09:10:30
 */
public interface IWorkFlowApproveDao {
	/**
	 * @description 根据工作流对象ID和业务ID得到审批记录
	 * @author fengya
	 * @date 2015-8-6 上午09:10:49
	 * @param workFlowId
	 * @param card
	 * @return
	 * @return WorkFlowApprove
	 */
	public List<TWorkFlowApprove> getApproveFlow(String workFlowId, String businessId);

	/**
	 * @description 通过业务ID得到该业务下所有的人员审批记录
	 * @author fengya
	 * @date 2015-9-25 下午03:22:51
	 * @param businessId
	 * @return
	 * @return List<WorkFlowNodeApprove>
	 */
	List<TWorkFlowNodeApprove> getWorkFlowNodeApproveByBusinessId(String businessId);

	/**
	 * @description 根据审批记录和用户获得唯一的用户审批记录
	 * @author fengya
	 * @date 2015-9-25 下午05:32:15
	 * @param approveId
	 * @param userId
	 * @return
	 * @return WorkFlowNodeApprove
	 */
	TWorkFlowNodeApprove getWorkFlowNodeApprove(String approveId, String userId);

	/**
	 * @description 根据审批节点记录ID得到所有的人员审批记录
	 * @author fengya
	 * @date 2015-9-28 上午09:37:04
	 * @param approveId
	 * @return
	 * @return List<WorkFlowNodeApprove>
	 */
	List<TWorkFlowNodeApprove> getWorkFlowNodeApproveByApproveId(String approveId);

	/**
	 * @description 得到审批的工作流信息
	 * @author fengya
	 * @date 2015-9-10 下午04:54:26
	 * @param page
	 * @param userId
	 * @param sort
	 * @return void
	 */
	public void findWaitApproveWorkFlow(Page<ApproveWorkFlowDto> page, String userId, String sysCode);

	/**
	 * @description 得到审批的工作流信息
	 * @author fengya
	 * @date 2015-9-10 下午04:54:26
	 * @param page
	 * @param userId
	 * @param sort
	 * @return void
	 */
	public void findApprovedWorkFlow(Page<ApproveWorkFlowDto> page, String userId, String sysCode);


	public List<TWorkFlowApprove> findALLApprovedWorkFlow();
}
